import random
import numpy  #导入numpy库
import pandas学习

int_list = [random.randint(1, 100) for i in range(10)]  #在1-100之间生成10个随机整数
print(int_list)
arr = numpy.array(int_list)  #array：使用列表将列表转换为数组
print(arr)
# zeros函数的参数应该是一个元组
zero_arr_1 = numpy.zeros(10)  #创建了一个长度为10的一维数组
zero_arr_2 = numpy.zeros((3, 3))  #创建了一个3x3的二维全零数组
print(zero_arr_1)
print(zero_arr_2)
ones_arr = numpy.ones((2, 2))  #创建了一个2x2的二维全1数组
print(ones_arr)
# 数组的矢量化相加
print([1, 2, 3, 4] + [1, 2, 3, 4])  #原始是列表相加，为[1,2,3,4,1,2,3,4]
print(numpy.array([1, 2, 3, 4]) + numpy.array([1, 2, 3, 4]))  # 数组相加，输出[2,4,6,8]


# 这里自定义一个函数来进行矢量相加
def F():
    list_1 = input("请输入list_1列表\n").lstrip('[').rstrip(']').split(',')
    list_2 = input("请输入list_2列表\n").lstrip('[').rstrip(']').split(',')
    if len(list_1) != len(list_2):
        print("这两个列表的长度不一致")
        return
    result = []
    for x, y in zip(list_1, list_2):
        try:
            result.append(int(x) + int(y))
        except ValueError:
            print("输入{}或者{}含有非数字字符".format(x, y))
            return  #提前返回
    print(result)


F()  #调用函数

linspace_arr = numpy.linspace(0, 10, 5)  #在0到10之间创建个数为5的等差数列
print(linspace_arr)
print(numpy.arange(0, 10, 2))  # 在0到10之间创建步长为2的等差数列，也就是等差为2


# 现在定义一个函数来计算行列式
def Calculate(a_list):
    a_list_1 = numpy.array(a_list)  # 先将列表转换为数组
    a_list_1 = numpy.linalg.det(a_list_1)  # 计算行列式
    print(round(a_list_1))  # 四舍五入并输出


# 调用函数
a_list = [[3, 1, -1, 2],
          [-5, 1, 3, -4],
          [2, 0, 1, -1],
          [1, -5, 3, -3], ]
Calculate(a_list)
b_list = [[4, 1, 2, 4],
          [1, 2, 0, 2],
          [10, 5, 2, 0],
          [0, 1, 1, 7], ]
Calculate(b_list)




